import os
import sys
from loguru import logger
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

def setup_logger():
    """配置日志记录器"""
    # 获取日志级别和文件
    log_level = os.getenv("LOG_LEVEL", "INFO").upper()
    log_file = os.getenv("LOG_FILE", "app.log")
    
    # 获取日志轮换和保留配置
    log_rotation = os.getenv("LOG_ROTATION", "10 MB")
    log_retention = os.getenv("LOG_RETENTION", "1 week")
    
    # 移除默认处理器
    logger.remove()
    
    # 添加控制台处理器
    logger.add(
        sys.stderr,
        level=log_level,
        format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> | <level>{level: <8}</level> | <cyan>{name}</cyan>:<cyan>{function}</cyan>:<cyan>{line}</cyan> - <level>{message}</level>"
    )
    
    # 添加文件处理器
    logger.add(
        log_file,
        level=log_level,
        format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}",
        rotation=log_rotation,  # 日志文件轮换配置
        retention=log_retention,  # 日志保留配置
        compression="zip"  # 压缩旧日志文件
    )
    
    logger.info(f"日志系统已初始化，级别: {log_level}, 文件: {log_file}, 轮换: {log_rotation}, 保留: {log_retention}")
    
    return logger 